package br.ufc.pet.dao;

import java.util.List;

import javax.persistence.Query;

import br.ufc.pet.model.Usuario;

public class UsuarioJPADao extends GenericJPADao<Usuario> implements UsuarioDao{
	
	public UsuarioJPADao(){
		this.persistenceClass = Usuario.class;
	}

	@Override
	public List<Usuario> getLista() {

		String hql = "select u from Usuario u";
		
		Query query = em.createQuery(hql);
		
		return query.getResultList();
	}

	@Override
	public List<Usuario> getListaOrdenada() {
		
		String hql = "select u from Usuario u order by u.visualizado, u.nome";
		
		Query query = em.createQuery(hql);
		
		return query.getResultList();
	}
	
	@Override
	public Usuario buscarPorCodigo(String codigo) {
		String hql = "select u from Usuario u where u.codigo = :codigo";
		
		Query query = this.em.createQuery(hql);
		query.setParameter("codigo", codigo);
		
		Usuario usuario = (Usuario)query.getSingleResult();
		
		return usuario;
	}
	
	public static void main(String[] args) {
		//System.out.println(new UsuarioJPADao().getListaOrdenada());
		System.out.println(new UsuarioJPADao().buscarPorCodigo("ef8374650232d8ea955f373a123f1406"));
	}
	
}
